home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 6: Level 6 / 17 Bit - Level 6 (1998)(Epic Marketing)[!].iso / !applications! / symphonie / dsplugin / dspplugin findmax.s < prev    next >
Text File  |  1994-04-11  |  3KB  |  170 lines

  1.     MC68020
  2.  
  3. SST_SYS_GetMem            EQU    0
  4. SST_SYS_FreeMem            EQU    4
  5.  
  6. SST_FILE_RequestFileName    EQU    100
  7. SST_FILE_SetReqPattern        EQU    104
  8. SST_FILE_SetReqDir        EQU    108
  9. SST_FILE_GetFileName        EQU    112
  10. SST_FILE_GetFileLen        EQU    116
  11.  
  12. SST_GFX_AssistText        EQU    200
  13. SST_GFX_AssistDecLong        EQU    204
  14. SST_GFX_AssistDecByte        EQU    208
  15. SST_GFX_AssistHexLong        EQU    212
  16.  
  17. SST_AUDIO_GetChunkLen        EQU    400
  18.  
  19. SST_PTR_EXECBASE        EQU    1600
  20. SST_PTR_INTBASE            EQU    1604
  21. SST_PTR_DOSBASE            EQU    1608
  22. SST_PTR_ASLBASE            EQU    1612
  23. SST_PTR_REQTOOLSBASE        EQU    1616
  24. SST_PTR_GFXBASE            EQU    1620
  25.  
  26. SST_PTR_Screen            EQU    1650
  27.  
  28. SST_ADR_ProcessorFlags        EQU    1800
  29. SST_ADR_SystemFrequency        EQU    1804
  30. SST_ADR_SystemBpm        EQU    1808
  31. SST_ADR_ChunkLen        EQU    1812
  32. SST_ADR_OversampleFlag        EQU    1816
  33. SST_ADR_MaxAmplitude        EQU    1820    ;$7fff in SymPRO
  34. SST_ADR_BitPerSample        EQU    1824    ;16 for 16 Bit Stream
  35.  
  36.  
  37.  
  38.     dc.b    "Symphonie DSP Plugin"    ;MAGIC String    (PRIVATE)
  39.     dc.w    1,0            ;Version,Release (PRIVATE,DO NOT CHANGE)
  40.  
  41.     ;- DSPLIB -------------------------------------------------
  42.  
  43.     jmp    InitDSP(PC)        ;Allocate Mem, Build your Tables
  44.     jmp    CleanUpDSP(PC)        ;Free Mem
  45.  
  46.     jmp    ProcDsp(PC)        ;Process DSP algorithm (interrupt)
  47.  
  48.     jmp    GetDspTitle(PC)        ;Get DSP algorithm Title
  49.     jmp    ModifyValue(PC)        ;notify changed Value
  50.  
  51.     jmp    GraphSizeModify(PC)    ;notify graph size has changed
  52.     jmp    RefreshGraph(PC)    ;notify its time for a GFX update
  53.  
  54.     jmp    StartDSP(PC)        ;notify start
  55.     jmp    StopDSP(PC)        ;notify stop
  56.     dc.l    -1
  57.  
  58.     ;- CODE --------------------------------------------------
  59.  
  60.  
  61. StartDSP
  62.     lea.l    Counter(PC),a0
  63.     clr.l    (a0)
  64.     rts
  65.  
  66. StopDSP
  67.     rts
  68.  
  69. GraphSizeModify
  70.     rts
  71.  
  72. RefreshGraph
  73.     lea.l    Counter(PC),a0
  74.     move.l    (a0),d0
  75.     move.l    4(a0),d1
  76.     cmp.l    d1,d0
  77.     beq.s    RefreshGraph_X
  78.  
  79.     move.l    d0,4(a0)
  80.  
  81.     move.l    #SST_GFX_AssistDecLong,d7
  82.     bsr    GoSST    
  83. RefreshGraph_X
  84.     rts
  85.  
  86. ModifyValue    ;INPUT (D0L,D1L)(VALUE, PARAMETER ID)
  87.     move.l    Counter(PC),d0
  88.     move.l    #SST_GFX_AssistHexLong,d7
  89.     bsr    GoSST    
  90.     rts
  91.  
  92. GoSST
  93.     move.l    a6,-(sp)
  94.     move.l    SUPERSTBASE(PC),a6
  95.     move.l    (a6,d7.w),a6
  96.     jsr    (a6)
  97.     move.l    (sp)+,a6
  98.     rts
  99.  
  100.  
  101. InitDSP        ;INPUT (A0L)(SUPERSUPPORTTABLE_PTR)
  102.         ;OUTPUT (A0L)(PARAMETER GUI DEF_PTR)
  103.     lea.l    SUPERSTBASE(PC),a1
  104.     move.l    a0,(a1)
  105.  
  106.  
  107.     lea.l    Welcome_TXT(PC),a0
  108.     move.l    #SST_GFX_AssistText,d7
  109.     bsr    GoSST
  110.  
  111.     lea.l    Parameter_DEF(PC),a0
  112.     rts
  113.  
  114. Welcome_TXT    dc.b    "Welcome to DSP test",0
  115.  
  116. SUPERSTBASE    dc.l    0
  117.  
  118. CleanUpDSP    rts
  119.  
  120. GetDspTitle    ;OUTPUT (A0L)(DSPTitle_TXT)
  121.     lea.l    DSPTitle(PC),a0
  122.     rts
  123.  
  124. Counter    dc.l    0,0
  125.  
  126. ProcDsp        ;INPUT (D0W,A1L)(SAMPLE_NUMB,SAMPLECHUNK_PTR)
  127.     movem.l    d0-a6,-(sp)
  128.  
  129.     lea.l    Counter(PC),a0
  130.     move.l    (a0),d2
  131.  
  132.     subq.w    #1,d0
  133. .loop    move.l    (a1)+,d1
  134.  
  135.     bsr    CheckMax
  136.     swap    d1
  137.     bsr    CheckMax
  138.  
  139.     dbf    d0,.loop
  140.  
  141.     move.l    d2,(a0)
  142.  
  143.     movem.l    (sp)+,d0-a6
  144.     rts
  145.  
  146. CheckMax
  147.     tst.w    d1
  148.     bpl.s    .ok
  149.  
  150.     neg.w    d1
  151. .ok    cmp.w    d1,d2
  152.     bhs.s    .exit
  153.     move.w    d1,d2
  154. .exit    rts
  155.  
  156.     ;- GUI ------------------------------------------------------
  157.  
  158.     even
  159. Parameter_DEF
  160.     dc.b    0        ;END OF GUI DEF
  161.  
  162.     ;- TITLE ----------------------------------------------------
  163.  
  164.  
  165.         dc.b    "$VER: "
  166. DSPTitle    dc.b    "Test Dsp Plugin: Find Max Amplituder v1.0",0
  167.  
  168.  
  169.     END
  170.